MsgBox is a simple class module that provides (hopefully) a useful bit of functionality. The VB MsgBox function has had some idiosyncrasies in the past which may still exist in VB4 (though I'm not sure of it). Under VB3 I used a wrapper function around the API MessageBox function as a replacement. Now I've ported it to VB4 and made it an object (i.e. class). Creating new versions should be easy as well. You can replace the MessageBox call with your own form and code, make message boxes that time-out, add animation capabilities, use custom icons, etc. This software, and the included source code, is FREEWARE. You may use it as you see fit in your own projects but you may not re-sell the original or a derivative. If you redistribute it you must include this disclaimer and all original copyright notices. No warranty is inferred or implied, as always seems to be the case with software these days. Use at your own risk. Keep away from small children. Don't exceed recommended dosage. I'm not liable, I'm not liable, I'm not liable. I'd love to see people improve upon this work. Please keep me posted if you do. If you should happen to change the behavior in a derivative version please change the class name so as not to cause problems with existing code. Enjoy! --Gregg Irwin [72450,676] -------------------------------------------------------------- Possible Enhancements I'm thinking about the HelpFile and Context options that the VB MsgBox function now offers. This would require using the MessageBoxIndirect API function which isn't available under Win16 (AFAIK). MessageBoxIndirect requires a callback function to process Help commands so, if you want to add HelpFile and Context properties your best bet might be to use the VB MsgBox function internally rather than the API calls. MessageBoxEx could also be used to add multi-language support. -------------------------------------------------------------- What's New? 01/06/96 The MsgBox class is unchanged. The sample project, though, now inlcudes a code generator that will generate code to paste into your projects. This lets you use the sample project as a message box designer. The generated code is placed into a text box so you can review it and copy it to the clipboard to paste into your projects. Since all the source is included you can tweak the code generator to match your standards and style. The code generator isn't a great piece of sample code because I put it together very quickly. It can certainly be improved. Thanks to Bill Antonacchio for the impetus. -------------------------------------------------------------- Q. How do I use it? A. It's easy. 1. Dim a variable to hold the message box. Example: Dim MB As New clsMsgBox 2. Set the Title of the message box. Example: MB.Title = "Reformat Drive" 3. Set the Message of the message box. Example: MB.Message = "Are you sure you want to do that?" 4. Set the Style of the message box. Example: MB.Style = vbYesNo + vbQuestion 5. Display the message box and handle the return value. Example: Dim Rtn as Integer Rtn = MB.ShowModal -------------------------------------------------------------- Q. What if I hate setting all those properties? I'd rather use it like the MsgBox function in VB. A. No problem. The ShowModal method takes all the required settings as optional parameters. Example: Rtn = MB.ShowModal(Msg, Style, Title, (FormX.HWnd)) Note: The final HWnd parameter is used by the API MessageBox function. -------------------------------------------------------------- Q. Why a class module? A. Why not? It has a defined interface. It provides encapsulation. It allows you to create multiple instances easily. It can be used as an OLE server. It can raise errors effectively. 'nuff said? -------------------------------------------------------------- Q. What if I have suggestions, requests, or improvements? A. Send them to me and I'll get back to you as quickly as I can. Hopefully we can make it a community effort and build up a good library of tools that we can all draw upon. -------------------------------------------------------------- Q. What if it has a bug in it that costs me millions of dollars? A. Re-read the disclaimer and let me know about the bug please. --------------------------------------------------------------